#include <iostream>
#include <cstring>
#include <vector>
#include <queue>
using namespace std;
typedef long long ll;

int n,m,d[105],T[105];
struct node
{
    int adj,value;
};

vector<node> e[105];

int main(void)
{
	ios::sync_with_stdio(0),cin.tie(0);
	cin>>n>>m;
	int i,j,k,x,y,z;
	for(i=1;i<=m;i++)
	{
		cin>>x>>y>>z;
		e[x].push_back({y,z});
		d[y]++;
	}
	queue<int> q;
	q.push(1);
	while(!q.empty())
	{
		int t=q.front();
		q.pop();
		for(i=0;i<e[t].size();i++)
		{
			int ad=e[t][i].adj,v=e[t][i].value;
			T[ad]=max(T[ad],T[t]+v);
			d[ad]--;
			if(d[ad]==0)
			q.push(ad);
		}
	}
	cout<<T[n];
	return 0;
}
